// 引入已经配置好的 Axios 实例
import ApiService from "@/utils/axios-config";

class ExamService {
    // 获取竞赛列表
    getExamList(params) {
        return ApiService.get('/exam/list', { params })  // 发送 GET 请求，查询竞赛列表
    }

    // 获取竞赛详情
    getExamDetail(examId) {
        return ApiService.get('/exam/detail', { params: { examId } })  // 发送 GET 请求，查询单个竞赛详情
    }

    // 添加竞赛
    addExam(examAddDTO) {
        return ApiService.post('/exam/add', examAddDTO)  // 发送 POST 请求，添加新的竞赛
    }

    // 编辑竞赛
    editExam(examEditDTO) {
        return ApiService.put('/exam/edit', examEditDTO)  // 发送 PUT 请求，编辑已存在的竞赛
    }

    // 删除竞赛
    deleteExam(examId) {
        return ApiService.delete('/exam/delete', { params: { examId } })  // 发送 DELETE 请求，删除指定的竞赛
    }

    // 发布竞赛
    publishExam(examId) {
        return ApiService.put('/exam/publish', null, {
            params: { examId }  // 通过 URL 查询参数传递 examId
        })
    }


    // 取消发布竞赛
    cancelPublishExam(examId) {
        return ApiService.put('/exam/cancelPublish', null,{
            params: { examId }  // 通过 URL 查询参数传递 examId
        })
    }

    // 添加题目到竞赛
    addQuestionToExam(examQuestAddDTO) {
        return ApiService.post('/exam/question/add', examQuestAddDTO)  // 发送 POST 请求，添加题目到竞赛
    }

    // 删除竞赛中的题目
    deleteQuestionFromExam(examId, questionId) {
        return ApiService.delete('/exam/question/delete', { params: { examId, questionId } })  // 发送 DELETE 请求，删除竞赛中的题目
    }
}

export default new ExamService();  // 导出服务实例
